草庐IT

Java JUnit assertEquals 与 Long

全部标签

java - matlab - 如何从返回 long 的 Java 方法中获取 int64?

根据Matlabdocumentation,当一个Java方法返回一个long时,它在Matlab中赋值之前被转换为一个double。精度已丢失。我对Java方法返回的long的低位感兴趣。double不能表示它们,但Matlab的int64可以。(考虑到这两种类型都有64位,这一点很清楚,而double使用其中的一些来表示指数。)如果我可以控制Java代码,我可以返回一个包含一个元素的数组,其中包含long—在这种情况下,Matlab将它们保存为int64,但是就我而言,我正在调用一个库函数。目前,我能看到的最好方法是用Java编写一个包装器,它将调用该方法并在数组中返回答案。但是这

java - Long.valueOf(java.lang.String) 和 new Long(java.lang.String) 的区别?

我正在合并由两个不同的人编写的代码,并注意到将String值转换为Long有两种不同的方式。Coder#1已经这样做了:StringstrId="12345678";...LonglId=newLong(strId);虽然2号编码器已经这样做了:StringstrId="12345678";...LonglId=Long.valueOf(strId);在功能上,代码的运行方式完全相同。每个位周围都有一个try/catchblock来处理抛出的任何NumberFormatException。传入的字符串值是一个代表小数的8位字符串:"12345678"并且在这两种情况下都正确转换为Lon

java - 如何使用 UUID 生成唯一的正 Long

我需要为我的数据库主键列生成唯一的Longid。我认为我可以使用UUID.randomUUID().getMostSignificantBits()但有时它会产生一些负长,这对我来说也是个问题。是否可以只从UUID生成正长?会有数十亿个条目,所以我希望每个生成的key都必须是唯一的。 最佳答案 UUID.randomUUID().getMostSignificantBits()&Long.MAX_VALUE这样做的原因是,当你用1进行按位&时,它允许相同的数字通过,而当你用0进行按位&时,它会阻止它,结果为0。现在,二进制的Long

Java在一个long中存储两个整数

我想在long中存储两个整数(而不是每次都创建一个新的Point对象)。目前,我尝试过这个。它不起作用,但我不知道它有什么问题://xandyareintslongl=x;l=(l我得到这样的int值:x=(int)l>>32;y=(int)l&0xffffffff; 最佳答案 y在第一个片段中得到符号扩展,这将覆盖x与-1每当y.在第二个片段中,转换为int在类次之前完成,所以x实际上得到y的值.longl=(((long)x)>32);inty=(int)l; 关于Java在一个lo

java - 将 Long 转换为 BigDecimal

如何将Long转换为BigDecimal? 最佳答案 您必须创建一个新的BigDecimal。BigDecimald=newBigDecimal(long); 关于java-将Long转换为BigDecimal,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/921621/

java Long数据类型比较

为什么下面的代码返回false用于long3==long2比较,即使它是文字。publicclassStrings{publicstaticvoidmain(String[]args){Longlong1=256L+256L;Longlong2=512L;Longlong3=512L;System.out.println(long3==long2);System.out.println(long1.equals(long2));}} 最佳答案 Long是一个对象,而不是原语。通过使用==,您可以比较引用值。你需要做的:if(str.

java - org.hibernate.AnnotationException : @OneToOne or @ManyToOne on entities. Ques#tion.examId 引用了一个未知实体:long

我第一次尝试在这个测试项目中使用hibernate实现来设置JPA。遇到以下错误:Exceptioninthread"main"javax.persistence.PersistenceException:[PersistenceUnit:ExamModulePu]UnabletobuildEntityManagerFactoryatorg.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924)atorg.hibernate.ejb.Ejb3Configuration.b

java - 为什么 Math.round 返回一个 long 但 Math.floor 返回一个 double?

为什么不一致? 最佳答案 没有不一致:这些方法只是为了遵循不同的规范而设计的。longround(doublea)返回最接近参数的long。doublefloor(doublea)返回小于或等于参数且等于数学整数的最大(最接近正无穷大)double值。与doubleceil(doublea)比较doublerint(doublea)返回与参数值最接近且等于数学整数的double值所以按照设计,round舍入为long,rint舍入为double。自JDK1.0以来一直如此。JDK1.2中添加了其他方法(例如toRadians、toD

java - 为什么我不能给 'long' 赋值 40 亿?

这个问题在这里已经有了答案:Theliteralxyzoftypeintisoutofrange(5个回答)关闭去年。我正在尝试在Java中声明一个long值,但不幸的是它不起作用。这是我的代码。它会导致以下错误消息:“int类型的文字4294967296超出范围”。longbytes=4294967296;我需要这个值来创建一个过滤掉大于4294967296字节(4GB)的文件的文件过滤器。反过来,每个文件大小都没有任何问题(longsize=file.length()),这就是为什么我无法弄清楚为什么我的声明不起作用的原因。 最佳答案

java - 为什么 SIZE 常量仅适用于 Integer 和 Long 的 @Native?

我了解@Native的使用注释。Indicatesthatafielddefiningaconstantvaluemaybereferencedfromnativecode.Theannotationmaybeusedasahintbytoolsthatgeneratenativeheaderfilestodeterminewhetheraheaderfileisrequired,andifso,whatdeclarationsitshouldcontain.但是,在阅读java源代码时,我注意到在类Integer和Long中,SIZE常量是@Native而不是Float、Byte、D